JavaJava继承[Extend][Java]
Jayfar
- “继承中的成员变量和方法”
- “继承中的构造方法”
- “继承中的对象转型”。
继承大致分为
- “继承中的成员变量和方法”
- “继承中的构造方法”
- “继承中的对象转型”。
继承的来源:如下有两个类,张三和李四,他俩都有姓名和年龄,那我们可以把这两个类共性的描述抽取出来,放在某个类中,然后让张三和李四继承这个类,就可以共享这个类中的姓名和年龄了。
继承提高了代码的复用性,简化代码。而且只有建立了继承关系(向上转型),才会有后面的多态特征的存在;
继承本质是类与类之间的关系,是把子类共性的描述抽取出来,放在父类中。千万不要为了获取其它类的功能简化代码,而随意搭建继承关系(姓李的类继承了姓张的类)。
子类拥有(继承)父类的成员(成员变量和成员方法);
继承是类与类之间的关系,static是同类里不同对象之间进行共享;
如下:因为zhang和li两个类中都有name,age和fangfa()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| class zhang { String name; int age; public void fangfa(){ System.out.println("人类"); } } class li { String name; int age; public void fangfa(){ System.out.println("人类"); } } public class jicheng{ public static void mainclass zhang { String name; int age; public void fangfa(){ System.out.println("人类"); } } class li { String name; int age; public void fangfa(){ System.out.println("人类"); } } public class jicheng{ public static void main(String[] args){ } }
|
所以如下:把共性的描述抽取出来,放在一个类中,建立继承关系
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| class renlei{--父类,超类,基类 String name; int age; public void fangfa(){ System.out.println("人类"); } } class zhang extends renlei{---子类} class li extends renlei{------子类} public class jicheng{ public static void main(String[] args){ zhang zhangsan=new zhang(); System.out.println(zhangsan.name);---子类拥有父类成员 zhangsan.fangfa(); li lisi=new class renlei{--父类,超类,基类 String name; int age; public void fangfa(){ System.out.println("人类"); } } class zhang extends renlei{---子类} class li extends renlei{------子类} public class jicheng{ public static void main(String[] args){ zhang zhangsan=new zhang(); System.out.println(zhangsan.name);---子类拥有父类成员 zhangsan.fangfa(); li lisi=new li(); System.out.println(lisi.name);---子类拥有父类成员 lisi.fangfa(); } }
|
- 子类不能拥有父类中被private修饰后的成员;
1 2 3 4 5 6 7 8 9 10 11
| class fu{ private String str; } class zi extends fu{} public class jicheng { public static void main(String[] args){ zi duixiang=new zi(); duixiang.str=class fu{ private String str; } class zi extends fu{} public class jicheng { public static void main(String[] args){ zi duixiang=new zi(); duixiang.str="hello";---报错 System.out.println(duixiang.str);---报错 } }
|
- java可以搭建多层继承关系。在多层继承中最下层的子类拥有整个继承体系的成员,最上层的父类里面定义了所有子类的共性描述。多层继承也说明没有绝对的子父类,都是相对而言的;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| class ye{ public void fangfa1(){ System.out.println("爷"); } } class fu extends ye{ public void fangfa2(){ System.out.println("父"); } } class zi extends fu{ public void fangfa3(){ System.out.println("子"); } } public class jicheng{ public static void main(String[] args){ zi duixiang=new class ye{ public void fangfa1(){ System.out.println("爷"); } } class fu extends ye{ public void fangfa2(){ System.out.println("父"); } } class zi extends fu{ public void fangfa3(){ System.out.println("子"); } } public class jicheng{ public static void main(String[] args){ zi duixiang=new zi(); duixiang.fangfa1(); duixiang.fangfa2(); duixiang.fangfa3(); } }
|